///*
// * Copyright (C), 北京中恒博瑞数字电力技术有限公司，保留所有权利.
// * FileName: DecryptionFilter.java
// * History：
// * <author>         <time>             <version>      <desc>
// *   Ghz     2013-11-7下午07:10:09        V1.0         TODO
// */
//package com.fs.core.security.util;
//
//import com.fs.core.security.config.DBConfig;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.context.ApplicationContext;
//import org.springframework.stereotype.Component;
//
//import javax.servlet.*;
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.Part;
//import java.io.IOException;
//import java.util.*;
//
//
///**
// * @Package: com.jb.sys.security.filter.impl<br>
// * @ClassName: AcceptFileFilter<br>
// * @Description: AcceptFileFilter过滤类，用来校验文件格式是否符合上传要求<br>
// */
//@Component("acceptFileFilter")
//public class AcceptFileFilter implements Filter {
//
//
//	private final Logger log = LoggerFactory.getLogger(getClass());
//
//	@Override
//	public void init(FilterConfig filterConfig) throws ServletException {
//
//	}
//
//	@Override
//	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
//			throws IOException, ServletException {
//		log.info("进行AcceptFileFilter");
//		String content_Type = ((HttpServletRequest) request).getHeader("Content-Type");
//		Boolean isSafe = true;
//		if (content_Type != null && content_Type.contains("multipart/form-data")) {
//			Collection<Part> parts = null;
//			try {
//				parts = ((HttpServletRequest) request).getParts();
//				// 系统配置的域名
//				ApplicationContext context = SpringUtil.getApplicationContext();
//				DBConfig dBConfig = context.getBean(DBConfig.class);// 注意是Service，不是ServiceImpl
//				String allowedFileTypes = dBConfig.getAllowedFileTypes().toLowerCase();//允许的文件上传类型
//				List<String>  allowedFileTypeList = Arrays.asList(allowedFileTypes.split("\\|"));
//				for (Part part : parts) {
//					if(part.getSubmittedFileName() != null){
//						String fileType = part.getSubmittedFileName().substring( part.getSubmittedFileName().lastIndexOf(".")+1,part.getSubmittedFileName().length());
//						if(!allowedFileTypeList.contains(fileType.toLowerCase())){
//							isSafe = false;
//						}
//					}
//				}
//			} catch (IOException e) {
//				e.printStackTrace();
//			} catch (ServletException e) {
//				e.printStackTrace();
//			}
//		}
//
//		if (!isSafe) {
//			throw new ServletException("上传文件类型不符合安全要求");
//		}else {
//			log.info("结束AcceptFileFilter");
//			chain.doFilter(request, response);
//		}
//
//	}
//
//	@Override
//	public void destroy() {
//
//	}
//
//
//}